<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
// 单词：
  // splice：绞接(两段绳子);粘接(胶片、磁带等)
// 数组相关

/* 声明方式
  // 字面量
  var arr = [];

  // new 构造函数的形式
  var arr2 = new Array(5);  // 若 new 构造函数 ，只有 一个 参数，返回值为 数组的长度(参数是数字，数字为几，长度即为 几)

  arr[7] = '7777';
  // console.log(arr2, arr);

  // var arr

  // 迭代的本质，若 item 为「空属性」，是不会被迭代的
  arr.forEach(function(item, index) {
    console.log(item, index);
  });
*/

// 实例方法
var arr = [1, 3, 4, 5, 'fff'];
// arr.concat(...items)  返回新的数组，将 item 与 arr 拼接到一起（注：若 item 为一维数组，数组被会解包）
  // concat 不会 改变 arr 变量本身

// arr.flat(depth?: 1)  // 作用：将多维数组 arr ，解包，默认解一层

// arr.includes(searchElement) 判断 searchElement 是否在 arr 中存在，返回值 布尔值

// arr.indexOf(searchElement, fromIndex?) 判断  searchElement  在 arr 中的 下标(从左到右寻找，命中的第一个)，若命中不了，返回值为 -1
  // fromIndex ，可选参，表示 从  fromIndex 下标为起点，开始 寻找 searchElement

// arr.lastIndexOf(searchElement, fromIndex?);  从右往左寻找，其他与 indexOf 一样

// arr.join(separator?: ',') 将 数组 的每个元素以 separator 为连接符，将整个数组连接 成 字符串。

// arr.slice(start?: number, end?: number)，从 [start, end)  截取字符串

// arr.splice(start: number, deleteCount?: number, ...?newItems)
  // start 为 开始删除的下标(包含)；deleteCount为删除的个数；...newItems 为向删除的地方 增加的新元素
  // 会改变数组本身的值

// 以下四组 均为 改变 数组本身
  // arr.push(...items)  向末尾添加 元素s
  // arr.pop() 删除末尾的元素

  // arr.unshift(...items) 向头部 添加 元素s
  // arr.shift() 删除 头部的元素
// -------------------------------------------
arr.forEach(function(item, index, array) {
  // 依次遍历 arr 中的每个元素

  // 回调函数 没有 return 

  // forEach 实例方法，没有返回值
})


// 数学上的「映射」
// map 有返回值；回掉函数 必须有 return 
arr.map(function(item, index, array) {
  // 映射 ， 即将 item 通过 一系列规则，「映射」成 新的 数据
  // code 为 映射 规则
  // return // 映射后的新数据
})


// 「过滤」
// filter 有返回值；回掉函数 必须有 return 
arr.filter(function(item, index, array) {
  // return 布尔值表达式，为「真」保留 item，为「假」删除 item
});


// sort 改变 arr 的值
// sort 有返回值；回掉函数 必须有 return 
arr.sort(function(a, b) {
  return a - b; // 升序排序
})
</script>